home *** CD-ROM | disk | FTP | other *** search
- #ifndef __kSanAGPane__
- #define __kSanAGPane__
-
- #include <fp.h>
-
- #include "OHBufferedView.h"
- #include "kSanObject.h"
- #include "kSanParticle.h"
- #include "kSanSimulationPublic.h"
- #include "kSanApplicationPublic.h"
- #include "kSanAGPanePublic.h"
- #include "kSanColourPlugIn.h"
-
- #define kSetMouseModeButtonsMessage 'MMBM'
-
- #define AGPaneWindowPtr(ag) (((OHWindow*)OHOCtr(ag))->window)
- #define kNoSize 0
- #define kSizeByAtomType 1
- #define kSizeByWindow 2
- #define kNoShade 0
- #define kShadeByDepth 1
-
- #define kMaxWindowHeight 100
- #define kMaxWindowWidth 100
- #define pWindowView 'view'
- #define kMagnifyButton 5
- #define kUnmagnifyButton 6
- #define kCloserButton 7
- #define kFurtherButton 8
- #define kLargeBallButton 9
- #define kSmallBallButton 10
- #define kRollCellButton 11
- #define kSelectFingerButton 12
-
- #define kMagnifyPictResID 200
- #define kUnmagnifyPictResID 202
- #define kQuestionMarkPictResID 186
- #define kCloserPictResID 196
- #define kFurtherPictResID 198
- #define kLargeBallPictResID 192
- #define kSmallBallPictResID 194
- #define kRollCellPictResID 188
- #define kSelectFingerPictResID 190
-
- #define kNoColour 'null'
- #define kDefaultColour 'kSan'
-
- #define kMouseManipulation 0 // in ag->mode field
- #define kSelectAndHighlight 1
- #define kBondsVisible 1 // in ag->mode field
- #define kBondsNotVisible 0
-
- #define kLinePairBlackColour 0
- #define kLinePairRedColour 1
- #define kLinePairGreenColour 2
- #define kLinePairBlueColour 3
-
- typedef struct cellManipType
- {
- float latRotateAngle;
- float longRotateAngle;
- float axialRotateAngle;
- float horizShift;
- float vertShift;
- float hikiShift;
- }
- cellManip;
-
- typedef struct LinePairType
- {
- short start, end, colour;
- }
- LinePair;
-
- typedef struct frameEdgeDataType
- {
- Point edgePoints[6];
- }
- frameEdgeData;
-
- typedef struct cubeFrameDataType
- {
- frameEdgeData edge[12];
- short cornerZValues[8];
- short edgeOrder[12];
- short edgeValues[12];
- Point cornerPoints[8];
- }
- cubeFrameData;
-
-
- extern cubeFrameData gCubeFrame;
- extern LinePair gCubeEdges[12];
- extern floatVector gCubeVerticies[8];
- extern UniversalProcPtr defaultSetAllColoursUPP;
-
- /*
- typedef struct AGPaneType
- {
- OHGWorldPane gwp;
- long agPaneUniqueID;
-
- }
- AGPane ;
- void initAGPaneClass(void);
- short AGPaneConstructor (KozoDispatchStack *ds, constructorMethodArgs *cma);
- void AGPaneDestructor (KozoDispatchStack *ds, destructorMethodArgs* dma);
- short AGPaneGetData (KozoDispatchStack *ds, getMethodArgs *gma);
- short AGPaneSetData (KozoDispatchStack *ds, setMethodArgs *sma);
- short AGPaneDoMessage (KozoDispatchStack *ds, doMessageMethodArgs *dmma);
-
-
- void setForeColourNoShade(AGPane *ag, grafData *thisPart);
- void setForeColourWithShade( AGPane *ag, grafData *thisPart);
- grafData * lockGrafData (AGPane *ag) ;
- short AGPaneDoDialog (OHObject *agObj);
- void releaseGrafData (AGPane *ag);
-
- short NewAGPane(AEDesc *props, OHObject * cont, OHObject **theObj);
- short AGPaneIdle(OHView *view, EventRecord *event);
-
- short AGPaneDoKey(OHView *view, char *theChar);
-
- void initVectorsAndVertices(void);
- void initCellManip(AGPane *ag);
- void initializeWindowOrderList(AGPane *ag);
- short addParticleList (AGPane *ag, OHList *newPartList);
- short AGPaneAddToPartList(AGPane *ag, long partToAdd);
- void AGPaneChangeParticleIndex(AGPane * ag, long oldIndex, long newIndex);
-
- short AGPaneRemoveParticle(AGPane *ag, long whichPart);
-
- void defaultGrafData (grafData * gPtr);
-
- void defaultView(viewInfo *dView);
- void AGPaneDoMouseModeSwitch (AGPane *ag);
- void setMouseModeButtons(AGPane *ag);
-
- void doSelectedRotate(AGPane *ag, char myKeyCode, short timesFive);
- void getAngles(AGPane *ag,char myKeyCode,float * latAngle,float * longAngle,float * spinAngle);
- void AGPaneSetWindowCenter(AGPane *ag);
-
- void doShowBondsSwitch (AGPane *ag);
- void setShowBondsMenuItem (AGPane *ag,short nowShowing);
- short grafDataResize (AGPane *ag, long numParts) ;
-
- short particleIsInWindow (AGPane *ag, long whichPart);
-
- // draw
- void AGPaneMakeWorld(OHGWorldPane *gwp);
-
- void sortParticles(AGPane *ag);
- void findLinePoints(AGPane *ag, cubeFrameData *thisFrame, newMatrixDPtr trix);
- void setLineOrder(short * lineValPtr, short * lineOrderPtr); // sort by zval
- void checkLineOrder( short index, short * myPtr,short * lineValPtr);
- void drawLines( cubeFrameData *thisFrame, short begin, short end);
-
- void drawContents(AGPane *ag);
- void findParticles(AGPane *ag, particle * part);
- void applyShadeToWindow(AGPane *ag);
- void findBonds(AGPane *ag, particle * part);
- void adjustForDepth( floatVecPtr centerVec, viewInfo *theView, float viewLen);
-
- // clicks
- void AGPaneHandleRollChoice (AGPane *ag, short item);
- void AGPaneHandlePushChoice (AGPane *ag, short item);
-
- void AGPaneKeypadRotate (AGPane *ag, char myKeyCode, short timesFive);
- void AGPaneArrowMove (AGPane *ag, char myKeyCode, short timesFive, short selectedOnly);
- short AGPaneDoClick ( OHView *view, EventRecord *eventPtr, Point offset);
- void AGPaneSelectHighlightClick (AGPane *ag, EventRecord *eventPtr, Point offset, short mouseStillDown, short wasADoubleClick) ;
- void AGPaneDragMove (AGPane *ag,EventRecord *eventPtr, Point offset) ;
- void AGPaneDragSelect (AGPane *ag, Point where, Point offset, short shiftKeyWasDown);
-
- void AGPaneSetDragActiveRegion(AGPane *ag, RgnHandle activeRegion);
- void AGPaneDragRotate (AGPane *ag,Point startPoint, Point offset);
- short AGPaneWasClickInParticle(AGPane *ag,Point where, long * whichParticle);
- void AGPaneHandleKeyDown(AGPane *ag,char theChar);
-
- //get set
- short setColourMethodMenuChoice(AGPane *ag, short menuIndex);
- short setColourPlugIn(AGPane *ag, DescType colourClass);
- short AGSetModule( AGPane *ag, DescType theProp, AEDesc *dataDesc);
-
-
-
- void setAGScrollBars (AGPane *ag);
- void setDefaultAGTitle(AGPane *ag, Handle ownerName);
- void calcScrollValues(AGPane *ag);
-
- void setScrollValues(AGPane *ag);
- void setBondsVisible (AGPane *ag, short viz);
- void setViewMatrix(AGPane *ag, newMatrixF *trix);
- void setBGColour(AGPane *ag, RGBColor * colour);
-
- short AGPaneGetData (KozoDispatchStack *ds, getMethodArgs *gma);
- short AGPaneSetData (KozoDispatchStack *ds, setMethodArgs *sma);
-
- long getColourMethod(AGPane *ag);
- long getSizeMethod(AGPane *ag);
- long getShadeMethod(AGPane *ag);
- long getGraphicsMethod(AGPane *ag, long descriptorType);
- short setColourMethod (AGPane *ag, long enumeratedID);
- short setSizeMethod (AGPane *ag, long enumeratedID);
- short setShadeMethod (AGPane *ag, long enumeratedID);
- short setGraphicsMethod (AGPane *ag, long descriptorType, long enumeratedID);
- short agSetView (AGPane *ag, viewInfo *theView);
-
- void AGPaneSetCenter(AGPane *ag, short hVal, short vVal);
- void AGPaneSetSize(AGPane *ag, short newHeight, short newWidth);
-
- void AGPaneSetMouseMode(AGPane *ag, short whichMode);
- void setMagnification(AGPane *ag, float val);
- void setPerspective(AGPane *ag, float val);
- void setParticleSize(AGPane *ag, float val);
- void setShadeRange(AGPane *ag, float val);
- void setShadeEven(AGPane *ag, float val);
- void setMinimumPE(AGPane *ag, float val);
- void setMinimumKE(AGPane *ag, float val);
- void setMinimumTE(AGPane *ag, float val);
- void setMaximumPE(AGPane *ag, float val);
- void setMaximumKE(AGPane *ag, float val);
- void setMaximumTE(AGPane *ag, float val);
- void setMaximumNN(AGPane *ag, float val);
- void setMinimumNN(AGPane *ag, float val);
-
- float setNoSize(AGPane *ag, viewInfo *theView, particle *thePart);
- float setMySizeByAtomType(AGPane *ag, viewInfo *theView,particle *thePart);
- float setMySizeByWindow(AGPane *ag, viewInfo *theView, particle *thePart);
- float setNoActualSize(AGPane *ag, viewInfo *theView, particle *thePart);
- float setMyActualSizeByAtomType(AGPane *ag, viewInfo *theView, particle *thePart);
- float setMyActualSizeByWindow(AGPane *ag, viewInfo *theView, particle *thePart);
- float getMagnification(AGPane *ag);
- float getPerspective(AGPane *ag);
- float getShadeRange(AGPane *ag);
- float getShadeEven(AGPane *ag);
-
- short DoCellManipulationDialog (OHObject *winObj);
- */
-
- #endif
-